package com.pactera.asmp.server.service;

import com.pactera.asmp.server.entity.IssueSearchDTO;
import com.pactera.asmp.server.entity.ResponseResult;
import com.pactera.asmp.server.pojo.Issue;
import com.pactera.asmp.server.pojo.PieChart;
import com.pactera.asmp.server.pojo.ProcessInfo;
import com.pactera.asmp.server.utils.PageDataResult;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @ProjectName: asmpserver
 * @Package: com.pactera.asmp.server.service
 * @ClassName: IssueService
 * @Author: lvzhiqiang
 * @Description: issue业务操作类
 * @Date: 2019/8/2 11:52
 * @Version: 1.0
 */
public interface IssueService {

    /**
     * @Method getIssues
     * @Description getIssues
     * @param: [issueSearchDTO,page, limit]
     * @return: PageDataResult
     * @auther: lzq
     * @date: 2019/8/2 13:51
     */
    PageDataResult getIssues(IssueSearchDTO issueSearchDTO, int page, int limit);

    /**
     * @Method
     * @Description
     * @param: [ids]
     * @return: String
     * @auther: lzq
     * @date: 2019/8/2 13:54
     */
    String delIssues(List<Integer>  datas);

    /**
     * @Method delIssue
     * @Description delIssue
     * @param: [id]
     * @return: String
     * @auther: lzq
     * @date: 2019/8/2 13:54
     */
    String delIssue(Integer id);

    /**
     * @Method addIssue
     * @Description addIssue
     * @param: issue
     * @return:
     * @auther: lzq
     * @date: 2019/8/27 16:04
     */
    boolean addIssue(Issue issue, MultipartFile file);
    ResponseResult addIssue(Issue issue);

    /**
     * @Method getChartData
     * @Description 查询图表数据
     * @param: Name
     * @return: PieChart
     * @auther:
     * @date:
     */
    PieChart getChartData(String name);


    /**
     * @Method getChartData
     * @Description 查询图表数据
     * @param: Name
     * @return: PieChart
     * @auther:
     * @date:
     */
    PieChart getProblemCount(String projectName, String versionData);

    /**
     * @Method getTopProblemList
     * @Description 查询前十问题模块
     * @param:
     * @return: ExceptionData
     * @auther:
     * @date:
     */
    List<ProcessInfo> getTopProblemList(String projectName);
}
